import torch
from transformers import AutoTokenizer, AutoModelForCausalLM

# 检查 GPU 是否可用
device = "cuda" if torch.cuda.is_available() else "cpu"
print(f"Using device: {device}")

# 加载分词器和模型
tokenizer = AutoTokenizer.from_pretrained("model/deepseek-llm-7b-base", trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained("model/deepseek-llm-7b-base", trust_remote_code=True).to(device)

def sentiment_analysis(text):
    # 构造指令提示
    prompt = f"分析以下文本的情感倾向：{text}"
    # 对输入文本进行编码
    inputs = tokenizer(prompt, return_tensors="pt").to(device)
    # 生成回答
    outputs = model.generate(**inputs, max_new_tokens=50, do_sample=True, temperature=0.8)
    # 解码生成的回答
    output_text = tokenizer.decode(outputs[0], skip_special_tokens=True)
    # 提取情感分析结果，这里简单地假设结果在回答中紧跟在提示后面
    result = output_text[len(prompt):].strip()
    return result

# 测试文本
test_text = "这部电影太棒了，情节紧凑，演员表演也很出色！"
# 进行情感分析
sentiment_result = sentiment_analysis(test_text)
print(f"文本：{test_text}")
print(f"情感分析结果：{sentiment_result}")